package com.ccys.db.vo.app.getStarted;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Author：XLY
 * @Date：2024/1/18 0018
 */

@Data
public class GetConsultProfileVo {

    /**
     * "id": null,
     *                 "name": "Self",
     *                 "description": "RETAIL RATES APPLY",
     *                 "consultation_fee": "$25.00",
     *                 "co_payment": null,
     *                 "co_payment_percent": null,
     *                 "claim_balance": null,
     *                 "visit_balance": null,
     *                 "consult_cap": null,
     *                 "annual_limit": null,
     *                 "policy_end_date": null,
     *                 "instruction": "The consultation fee is exclusive of GST, cost of medication and delivery charges (where applicable). AIA Critical Illness policyholders will enjoy the AIA policyholder rate applied at the end of the consult.",
     *                 "disabled": false,
     *                 "surcharge_fee": 0.0,
     *                 "status": 1,
     *                 "profile_type_id": 0,
     *                 "benefits": null,
     *                 "sp_panel_id": null,
     *                 "sp_panel_name": null,
     *                 "sp_panel_instructions": null,
     *                 "gp_panel_id": null,
     *                 "gp_panel_name": null,
     *                 "is_subscription": false,
     *                 "max_dependant": null,
     *                 "disable_editing_dependant": false,
     *                 "allow_add_dependant": false,
     *                 "is_main_subscriber": false,
     *                 "max_amount_visit_label": null,
     *                 "co_payment_amount_label": null,
     *                 "flag_disp_order": 1,
     *                 "identifier_type": 0,
     *                 "active_code": null,
     *                 "is_aia_health_screening": false,
     *                 "rl_required": false,
     *                 "rl_required_from_year": 0,
     *                 "rl_required_from_day": 0,
     *                 "dependants": null,
     *                 "promo_code": null,
     *                 "start_date": null,
     *                 "end_date": null,
     *                 "is_expired": false,
     *                 "continue_preferred_consult_fee": false,
     *                 "bencode": null,
     *                 "benefit_consult_fee": null,
     *                 "is_pim_benefit": false,
     *                 "display_name": null
     */
    private String id;

    private String name;

    private String description;

    @JsonProperty("consultation_fee")
    private String consultationFee;

    @JsonProperty("co_payment")
    private String coPayment;

    @JsonProperty("co_payment_percent")
    private String coPaymentPercent;

    @JsonProperty("claim_balance")
    private String claimBalance;

    @JsonProperty("visit_balance")
    private String visitBalance;

    @JsonProperty("consult_cap")
    private String consultCap;

    @JsonProperty("annual_limit")
    private String annualLimit;

    @JsonProperty("policy_end_date")
    private Date policyEndDate;

    private String instruction;

    private boolean disabled;

    @JsonProperty("surcharge_fee")
    private BigDecimal surchargeFee;

    private Integer status;

    @JsonProperty("profile_type_id")
    private Integer profileTypeId;

    private String benefits;

    @JsonProperty("sp_panel_id")
    private String spPanelId;

    @JsonProperty("sp_panel_instructions")
    private String spPanelInstructions;

    @JsonProperty("gp_panel_id")
    private String gpPanelId;

    @JsonProperty("gp_panel_name")
    private String gpPanelName;

    @JsonProperty("is_subscription")
    private String isSubscription;

    @JsonProperty("max_dependant")
    private String maxDependant;

    @JsonProperty("disable_editing_dependant")
    private boolean disableEditingDependant;

    @JsonProperty("allow_add_dependant")
    private boolean allowAddDependant;

    @JsonProperty("is_main_subscriber")
    private boolean isMainSubscriber;

    @JsonProperty("max_amount_visit_label")
    private String maxAmountVisitLabel;

    @JsonProperty("co_payment_amount_label")
    private String coPaymentAmountLabel;

    @JsonProperty("flag_disp_order")
    private Integer flagDispOrder;

    @JsonProperty("identifier_type")
    private Integer identifierType;

    @JsonProperty("active_code")
    private String activeCode;

    @JsonProperty("is_aia_health_screening")
    private boolean isAiaHealthScreening;

    @JsonProperty("rl_required")
    private boolean rlRequired;

    @JsonProperty("rl_required_from_year")
    private Integer rlRequiredFromYear;

    @JsonProperty("rl_required_from_day")
    private Integer rlRequiredFromDay;

    private String dependants;

    @JsonProperty("promo_code")
    private String  promoCode;

    @ApiModelProperty("格式：dd/MM/yy hh:mm:ss AM/PM")
    @JsonProperty("start_date")
    private String startDate;

    @JsonProperty("end_date")
    private String endDate;

    @JsonProperty("is_expired")
    private boolean isExpired;

    @JsonProperty("continue_preferred_consult_fee")
    private boolean continuePreferredConsultFee;

    private String bencode;

    @JsonProperty("benefit_consult_fee")
    private String benefitConsultFee;

    @JsonProperty("is_pim_benefit")
    private boolean isPimBenefit;

    @JsonProperty("display_name")
    private String displayName;


    @JsonIgnore
    private Integer serviceType;

}
